package com.stars.module.holiday.controller;

import com.stars.base.entity.Result;
import com.stars.module.holiday.service.StarHolidayService;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

/**
 * @author : moon
 * @version : 1.0
 * @date : 2023-02-21
 * @description : 节假日控制器
 */
@RestController
@RequestMapping("/starHoliday")
public class StarHolidayController{

    private final StarHolidayService starHolidayService;

    public StarHolidayController(StarHolidayService starHolidayService) {
        this.starHolidayService = starHolidayService;
    }

    /**
     * 加载整年的设置的节假日
     * @author : moon
     * @date :  2023/3/1 14:04
     * @param year 要加载的年份
     * @return Result
     */
    @RequestMapping("/loadHolidayByYear")
    public Result loadHolidayByYear (String year) {
        return Result.success(starHolidayService.loadHolidayByYear(year));
    }

    /**
     * 根据日期设置节假日，yyyy-MM-dd
     * 如果已经存在则取消
     * @param date 要设置/取消节假日的日期
     */
    @RequestMapping("/setHoliday")
    public Result setHoliday (String date) {
        if(!StringUtils.hasLength(date)){
            return Result.error("参数错误");
        }
        return Result.success(starHolidayService.setHoliday(date));
    }

    /**
     * 初始化年度节假日，将周六、周日设置成节假日
     * 初始化将删除年度设置
     * @author : moon
     * @date :  2023/3/1 14:08
     * @param year 初始化年度
     * @return Result
     */
    @RequestMapping("/initHolidayByYear")
    public Result initHolidayByYear (String year) {
        if(!StringUtils.hasLength(year)){
            return Result.error("参数错误");
        }
        return Result.success(starHolidayService.initHolidayByYear(year));
    }
}
